import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import java.io.*;

/**
 * 拼sql
 */
public class PDFTest2 {

    public static void main(String[] args) throws IOException {

    }


    public static void base64StringToPdf(String base64Content,String filePath){
        BASE64Decoder decoder = new BASE64Decoder();
        BufferedInputStream bis = null;
        FileOutputStream fos = null;
        BufferedOutputStream bos = null;
        try{
            byte[] bytes = decoder.decodeBuffer(base64Content);//base64编码内容转换为字节数组
            ByteArrayInputStream byteInputStream = new ByteArrayInputStream(bytes);
            bis = new BufferedInputStream(byteInputStream);
            File file = new File(filePath);
            File path = file.getParentFile();
            if(!path.exists())
                path.mkdirs();

            fos = new FileOutputStream(file);
            bos = new BufferedOutputStream(fos);

            byte[] buffer = new byte[1024];
            int length = bis.read(buffer);
            while(length != -1){
                bos.write(buffer, 0, length);
                length = bis.read(buffer);
            }
            bos.flush();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            closeStream(bis, fos, bos);
        }
    }

    private static void closeStream(BufferedInputStream bis, FileOutputStream fos, BufferedOutputStream bos) {
        try {
            bis.close();
            fos.close();
            bos.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }


    /**
     */
    public static String PDFToBase64(File file) throws IOException {
        if (!file.exists()){
            file.createNewFile();
        }
        BASE64Encoder encoder = new BASE64Encoder();
        FileInputStream fin =null;
        BufferedInputStream bin =null;
        ByteArrayOutputStream baos = null;
        BufferedOutputStream bout =null;
        try{
            fin = new FileInputStream(file);
            bin = new BufferedInputStream(fin);
            baos = new ByteArrayOutputStream();
            bout = new BufferedOutputStream(baos);
            byte[] buffer = new byte[1024];
            int len = bin.read(buffer);
            while(len != -1){
                bout.write(buffer, 0, len);
                len = bin.read(buffer);
            }
            //刷新此输出流并强制写出所有缓冲的输出字节
            bout.flush();
            byte[] bytes = baos.toByteArray();
            return encoder.encodeBuffer(bytes).trim();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            fin.close();
            bin.close();
        }
        return null;
    }




}
